package forms {
	
	import AliveChessLibrary.Commands.RegisterCommands.AuthorizeRequest;
	import AliveChessLibrary.Commands.RegisterCommands.AuthorizeResponse;
	
	import Net.ProtoBufferCodec;
	import Net.Transport;
	
	import Symbols.connectionLog;
	
	import com.google.protobuf.Message;
	
	import fl.controls.*;
	import fl.events.ComponentEvent;
	
	import flash.display.*;
	import flash.display.Shape;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Rectangle;
	import flash.text.TextField;
	import flash.text.TextFormat;
	import flash.utils.ByteArray;
	
	import graphics.authorizeForm;
	
	import main.Main;
	
//	import mx.effects.*
	
//	import mx.controls.TextArea;
	

	
	public class authorizeWarp extends MovieClip
	{
		//графика и отображение остается в компоненте, никаких жутких созданий лейблов и чекбоксов в коде
		//и все счастливы, по идее
		//только блин еще бы разобораться с этими преобразованиями типов
		
		//та самая форма, которую импортируем из компонента
		//вываливается в этой строчке, не очень понятно, почему
		public var form:authorizeForm;
		
		// public var form:MovieClip = new authorizeForm() as MovieClip;
		//создаем переменные для нужных нам полей (поля берем из формы)
		public var txtLogin:TextInput;	
		public var txtPwd:TextInput;
		public var btnAuth:Button
		public var cbRoot:CheckBox;
		
		private var ar:AuthorizeResponse;
		private var type:Boolean = true;
		private var transport:Transport;
		private var m:Main;
		
		public function authorizeWarp(m:Main){
			super();
			form = new authorizeForm();
			txtLogin = form.inputLogin /*as TextInput*/;
			txtPwd = form.inputPassword /*as TextInput*/;
			cbRoot = form.inputRoot /*as CheckBox*/;
			btnAuth = form.loginButton /*as Button*/;
			this.m=m;
			transport = new Transport(this.m);
			transport.addEventListener(Transport.RESPONSE_COMPLITE,responseExecute);
	//		setUpHandlers(); тут какая-то ерунда вываливается пока что
			addChild(form);
		}
		
		private function setUpHandlers():void
		{
			btnAuth.addEventListener(MouseEvent.CLICK,clickHandler);
			cbRoot.addEventListener(MouseEvent.CLICK,cbHandler);
		}
		
		private function responseExecute(e:Event):void
		{
			ar = AuthorizeResponse (transport.msgResponse);
			trace (ar.IsAuthorized.toString()+" "+ar.IsNewPlayer.toString()+ar.ErrorMessage);
		}
		
		private function cbHandler(e:MouseEvent):void //тыкнули в чекбоксик
		{
			type = e.target.selected;
		}
		
		private function clickHandler(e:MouseEvent):void //тыкнули по кнопочке
		{
			//фигня отладочная
			var ta:TextArea=new TextArea();
			ta.text = " ";
			ta.setSize(300,25);
			ta.move(10,345);
			ta.text +=  "Login: " + txtLogin.text + ", Password: " + txtPwd.text + ", Type: " + type.toString();
			addChild(ta);
			//а вот и понеслась
			var c:connectionLog=new connectionLog();
			var ar:AuthorizeRequest = new AuthorizeRequest();
			ar.login = txtLogin.text;
			ar.password = txtPwd.text;
			transport.SendCommand(ar);
			//con = new Connect(m,txtLogin.text,txtPas.text,type/*,ta*/);		
			
		}
		
		
	}
}
